package com.ruoyi.notice.service.impl;

import com.ruoyi.common.core.text.Convert;
import com.ruoyi.notice.domain.SysNotices;
import com.ruoyi.notice.mapper.SysNoticesMapper;
import com.ruoyi.notice.service.SysNoticesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * @author YL
 * @version 1.0
 * @date 2020/6/29 14:09
 */
@Service
public class SysNoticesServiceImpl implements SysNoticesService {
    @Autowired
    private SysNoticesMapper noticeMapper;

    /**
     * 查询所有普通公告信息
     */
    @Override
    public List<SysNotices> selectAll() {
        return noticeMapper.selectAll();
    }

    /**
     * 查询所有寻源公告信息
     */
    public List<SysNotices> selectAll2() {
        return noticeMapper.selectAll2();
    }

    /**
     * 根据id查找公告信息
     * @param id
     * @return
     */
    @Override
    public SysNotices selectNoticeById(Long id) {
        SysNotices sysNotices=noticeMapper.selectNoticeById(id);
        if (sysNotices.getStats().equals("2")){
            sysNotices.setContent("");
        }
        return sysNotices;
    }

    /**
     * 模糊查询公告
     *
     * @param notice 公告
     * @return 公告
     */
    @Override
    public List<SysNotices> selectNoticeList(SysNotices notice)
    {
        return noticeMapper.selectNoticeList(notice);
    }

    /**
     * 新增公告
     *
     * @param notice 公告
     * @return 结果
     */
    @Override
    public int insertNotice(SysNotices notice)
    {
        String now=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
        notice.setDates(now);
        String now1=new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());
        String number=now1+notice.getTitle();
        notice.setNumbers(number);
        return noticeMapper.insertNotice(notice);
    }

    /**
     * 修改公告
     *
     * @param notice 公告
     * @return 结果
     */
    @Override
    public int updateNotice(SysNotices notice)
    {
        String stats=noticeMapper.selectStatsById(notice.getId());
        if (!stats.equals("0")){
            return -1;
        }
        return noticeMapper.updateNotice(notice);
    }

    /**
     * 终止公告
     */
    public int breakNotice(SysNotices notice) {
        return noticeMapper.breakNotice(notice);
    }

    /**
     * 删除公告信息
     *
     * @param id 公告ID
     * @return 结果
     */
    public int deleteNoticeById(Long id)
    {
        String stats=noticeMapper.selectStatsById(id);
        if (!stats.equals("0")){
            return -1;
        }
        return noticeMapper.deleteNoticeById(id);
    }
    /**
     * 删除公告对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteNoticeByIds(String ids)
    {
        return noticeMapper.deleteNoticeByIds(Convert.toStrArray(ids));
    }

    /**
     * 根据公告ID显示物料名称
     */
    public List<String> selectMaterialByNoticeId(Long noticeId) {
        return noticeMapper.selectMaterialByNoticeId(noticeId);
    }

    /**
     * 查找所有关联物料的名称
     */
    public List<String> selectMaterial() {
        return noticeMapper.selectMaterial();
    }

    /**
     * 编辑关联物料
     */
    public int insertMaterial(SysNotices notice) {
        return noticeMapper.insertMaterial(notice);
    }

    /**
     * 删除关联物料
     */
    public int deleteMaterial(Long noticeId) {
        return noticeMapper.deleteMaterial(noticeId);
    }
}
